// 基于 axios 封装一个我们自己的 'ajax'

// 1. 引入 axios
import axios from "axios";

// 2. 基于 axios 创建一个我们自己的 'ajax'
const instance = axios.create({
    // 请求的基准地址
    baseURL: "http://121.89.205.189:3000/admin",
    // 请求超时时间
    timeout: 60000,
    // 添加请求头
    // headers: { "X-Custom-Header": "foobar" },
});

// "http://121.89.205.189:3000/admin/admin/login"
// "http://121.89.205.189:3000/admin/address/list"
// "http://121.89.205.189:3000/admin/admin/update"
// "http://121.89.205.189:3000/admin/banner/list"

// 3. 基于我们自己的 'ajax', 封装一个请求函数       当前的函数是给 api 目录下某些文件中的函数使用的
export default function ajax(options) {
    /**
     *  method: 请求方式, 默认为 get
     *  url: 请求地址, 没有默认值, 必须传递
     *  data: 请求的参数, 默认为 空对象 {}
     */

    /**
     *  解构赋值的时候 也可以做默认值处理
     *  只有当我们结构出来的数据是 undefined 默认值才会生效
    */
    const { url, method = "get", data = {} } = options;

    // 判断一个字符串是不是 'get', 并且不限制大小写
    const reg = /^get$/i

    if (reg.test(method)) {
        return instance.get(url, {
            params: data
        })
    } else {
        return instance.post(url, data)
    }
}
